2.4.2 역전파(Backpropagation)의 확장: 신경망을 넘어 물리 엔진까지
인공지능 로보틱스와 제어 이론의 역사에서 가장 급진적이고 파괴적인 혁신은 딥러닝의 핵심 학습 메커니즘인 ‘역전파(Backpropagation)’ 알고리즘이 신경망이라는 소프트웨어적 추상화를 넘어, 물리적 실체를 시뮬레이션하는 엔진 내부로 침투했다는 사실이다. 이는 안드레 카파시(Andrej Karpathy)가 주창한 ‘소프트웨어 2.0’ 패러다임이 로봇 공학에서 구체화된 가장 극적인 사례이다.1 과거의 로봇 제어가 사람이 직접 작성한 명시적인 코드(소프트웨어 1.0)와 미분 불가능한 블랙박스 시뮬레이터에 의존했다면, 현재의 흐름은 물리 엔진 자체를 하나의 거대한 ’미분 가능한 연산 그래프(Differentiable Computational Graph)’로 재정의하는 과정에 있다. 본 절에서는 이러한 기술적 전환의 수학적 원리, 구현상의 난제인 접촉 불연속성(Contact Discontinuity)의 해결 방안, 그리고 이를 구현한 최신 SOTA(State-of-the-Art) 엔진들의 아키텍처를 심층적으로 분석한다.
1. 물리 시뮬레이션의 미분 가능성: 블랙박스에서 화이트박스로
전통적인 물리 엔진(Physics Engine)—예를 들어 Gazebo, Bullet, ODE 등—은 주어진 상태(State) x_t와 제어 입력(Control Input) u_t에 대해 다음 시간의 상태 x_{t+1}을 계산하는 전방향(Forward) 연산에 최적화되어 있었다. 이 과정은 수치 적분(Numerical Integration), 충돌 감지(Collision Detection), 제약 조건 해결(Constraint Solving) 등 다수의 복잡한 연산으로 구성되지만, 최적화 관점에서는 내부 구조를 알 수 없는 블랙박스 함수 x_{t+1} = f(x_t, u_t)로 취급되었다. 따라서 강화학습(Reinforcement Learning)이나 진화 알고리즘은 이 함수를 미분할 수 없었기에, 수만 번의 시행착오(Trial and Error)를 통해 보상 함수의 기울기를 추정하는 ‘무기울기(Gradient-free)’ 또는 ‘제로 오더(Zero-order)’ 최적화 방식에 의존해야 했다.3
그러나 미분 가능한 물리(Differentiable Physics)는 시뮬레이터의 모든 연산 과정을 연쇄 법칙(Chain Rule)이 적용 가능한 연산자들의 조합으로 구성함으로써, 시뮬레이터를 ’화이트박스(White-box)’화 한다.4 이는 최종 목적 함수(Loss function) J에 대한 입력 제어 변수 u의 기울기 \nabla_u J를 해석적(Analytical)으로 정확하게 계산할 수 있음을 의미한다.
1.1 미분 가능한 파이프라인의 의의
이러한 패러다임 전환은 로봇 학습의 효율성을 기하급수적으로 증대시킨다. 기존의 모델 프리(Model-Free) 강화학습이 고차원 제어 문제를 해결하기 위해 수억 스텝의 상호작용을 요구했다면, 미분 가능한 시뮬레이터를 활용한 ‘분석적 정책 기울기(Analytic Policy Gradient)’ 방법론은 수십, 수백 번의 반복만으로도 최적의 제어 정책으로 수렴할 수 있다.5 더 나아가, 이는 단순한 제어를 넘어 ‘시스템 식별(System Identification)’—관측된 현실 데이터와 시뮬레이션의 차이를 최소화하도록 물리 파라미터(질량, 마찰 계수 등)를 역전파로 보정하는 것—을 가능하게 하여, 시뮬레이션과 현실의 간극(Sim-to-Real Gap)을 줄이는 핵심 도구로 자리 잡았다.5
2. 수학적 토대: 수반 방법(Adjoint Method)의 심층 분석
물리 시뮬레이션은 시간 t에 따라 상태가 진화하는 동역학 시스템이다. 이를 신경망처럼 단순히 BPTT(Backpropagation Through Time)로 처리할 경우, 시뮬레이션의 모든 중간 단계 상태를 메모리에 저장해야 하므로 메모리 사용량이 타임스텝 수 T에 비례하여 선형적으로 증가(O(T))하는 치명적인 문제가 발생한다.7 이를 극복하기 위해 제어 이론과 유체 역학에서 사용되던 **수반 방법(Adjoint Method)**이 도입되었다. 수반 방법은 메모리 복잡도를 O(1)로 줄이면서도 정확한 기울기를 계산할 수 있는 수학적 기교를 제공한다.
2.1 연속 시간 수반 방법 (Continuous Adjoint Method)
물리 시스템이 상미분 방정식(ODE) \dot{x}(t) = f(x(t), u, t)으로 기술된다고 가정하자. 우리는 다음과 같은 손실 함수 J를 최소화하고자 한다.
J(u) = \int_{t_0}^{t_1} L(x(t), u, t) dt + \Phi(x(t_1))
여기서 L은 궤적을 따르는 순간 비용(running cost), \Phi는 최종 상태 비용(terminal cost)이다. 제약 조건인 동역학 방정식을 라그랑주 승수(Lagrange Multiplier) \lambda(t)—여기서는 수반 변수(Adjoint State)라 부른다—를 도입하여 증강된 목적 함수로 표현하면 다음과 같다.
\mathcal{L} = J(u) - \int_{t_0}^{t_1} \lambda(t)^\top (\dot{x}(t) - f(x(t), u, t)) dt
부분 적분(Integration by parts)을 통해 \dot{x} 항을 처리하고 변분법을 적용하면, 수반 변수 \lambda(t)가 만족해야 하는 미분 방정식, 즉 **수반 방정식(Adjoint Equation)**을 유도할 수 있다.9
\dot{\lambda}(t) = - \frac{\partial f}{\partial x}^\top \lambda(t) - \frac{\partial L}{\partial x}^\top
이때 최종 조건은 \lambda(t_1) = \nabla_{x(t_1)} \Phi로 주어진다. 중요한 점은 이 수반 방정식이 시간의 역방향(t_1 \rightarrow t_0)으로 적분된다는 것이다. 이를 통해 파라미터 u에 대한 기울기를 다음과 같이 계산할 수 있다.
\frac{dJ}{du} = \int_{t_0}^{t_1} \left( \frac{\partial L}{\partial u} + \lambda(t)^\top \frac{\partial f}{\partial u} \right) dt
이 수식은 물리 엔진의 전방향 시뮬레이션이 끝난 후, 단 한 번의 역방향 적분만으로 모든 파라미터에 대한 기울기를 구할 수 있음을 보여준다.11
2.2 이산 시간 수반 방법과 체크포인팅 (Discrete Adjoint & Checkpointing)
실제 컴퓨터 시뮬레이션은 연속 시간이 아닌 이산 시간(t, t+1, \dots)으로 진행된다. 따라서 현대의 미분 물리 엔진들은 **이산 수반 방법(Discrete Adjoint Method)**을 채택한다. 이는 수치 적분기(Integrator) 자체를 하나의 연산 블록으로 보고 연쇄 법칙을 적용하는 것이다.
\frac{\partial J}{\partial u_t} = \frac{\partial x_{t+1}}{\partial u_t} \frac{\partial J}{\partial x_{t+1}} + \frac{\partial L_t}{\partial u_t}
여기서 핵심 난제는 역방향 패스(Backward Pass)를 수행하기 위해 전방향 패스(Forward Pass)의 상태값 x_t가 필요하다는 점이다. 모든 x_t를 저장하는 대신, 체크포인팅(Checkpointing) 기법을 활용한다. 이는 시뮬레이션 전체를 K개의 구간으로 나누어 각 구간의 시작점(체크포인트)만 저장하고, 역전파가 해당 구간에 도달했을 때 그 구간만 다시 전방향으로 재계산(Recompute)하는 방식이다.7 이 기법을 통해 Brax나 Warp와 같은 엔진들은 수만 스텝의 궤적 최적화에서도 메모리 오버헤드를 획기적으로 줄인다.
3. 불연속성의 장벽: 충돌(Collision)과 접촉(Contact)의 미분
신경망의 활성화 함수(ReLU 등)와 달리, 로봇 물리 시뮬레이션의 비선형성은 훨씬 가혹하다. 강체 간의 충돌은 속도의 급격한 변화를 일으키며, 접촉 여부(Contact State)가 바뀌는 순간 미분 불가능한 지점(Kink)이 발생하거나 기울기가 0이 되는(Vanishing Gradient) 현상이 나타난다. 특히 “Hard Contact” 모델에서는 두 물체가 닿지 않았을 때는 기울기가 0이고, 닿는 순간 무한대로 튀어 오르는 문제가 있어 최적화기가 갈피를 잡지 못한다.14 이를 해결하기 위해 학계와 산업계는 크게 세 가지 접근법으로 나뉘어 경쟁하고 있다.
3.1 LCP(Linear Complementarity Problem)의 해석적 미분
전통적인 물리 엔진(DART, ODE 등)은 접촉 문제를 LCP로 정식화한다. 즉, 침투 깊이 d \ge 0, 접촉력 f \ge 0, 그리고 상보성 조건 d \cdot f = 0을 만족하는 해를 구한다. Nimble 16 엔진은 이 LCP 해법 자체를 미분 가능하게 만들었다. LCP의 해에 대해 암시적 함수 정리(Implicit Function Theorem)를 적용하여, 반복적인 솔버 과정을 거치지 않고도 접촉력에 대한 파라미터의 기울기를 해석적(Analytical)으로 도출한다.
\nabla_\theta \text{SolveLCP}(M, q)
이 방식은 물리적 정확도가 매우 높고(침투 현상 없음), 기존 로봇 시뮬레이션과의 정합성이 뛰어나다. 하지만 접촉 모드(Contact Mode)가 변경되는 시점에서의 불연속성 문제는 여전히 남아 있어, 이를 보완하기 위한 연구가 진행 중이다.
3.2 페널티 기반 방법(Penalty-based Methods)과 소프트 접촉(Soft Contact)
Brax 18나 MuJoCo는 접촉을 아주 강한 스프링-댐퍼(Spring-Damper) 시스템으로 모델링하는 페널티 방식을 주로 사용한다. 물체 간의 미세한 침투를 허용하되, 침투 깊이에 비례하여 밀어내는 힘을 가하는 것이다.
F_{contact} = -k \cdot d - b \cdot \dot{d}
이 함수는 수학적으로 연속적이고 부드러운 기울기를 제공하므로, JAX나 PyTorch와 같은 자동 미분(AD) 프레임워크를 수정 없이 바로 적용할 수 있다. 이는 구현이 용이하고 대규모 병렬 처리에 유리하지만, 스프링 상수가 클 경우 미분 방정식이 딱딱해져(Stiff) 시뮬레이션 안정성을 위해 매우 작은 타임스텝(dt)을 사용해야 하는 단점이 있다.19 최근 연구인 ‘Hard Contacts with Soft Gradients’ 14에서는 역전파 시에만 의도적으로 접촉 모델을 부드럽게 완화(Smoothing)하여 탐색 성능을 높이는 기법을 제안한다.
3.3 충돌 시간(Time of Impact, TOI) 및 연속 충돌 감지(CCD)
이산 시간 시뮬레이션은 스텝 사이에서 발생하는 충돌을 놓치는 ‘터널링(Tunneling)’ 현상이 발생할 수 있다. DiffTaichi 13는 스텝 중간에 충돌이 발생하는 정확한 시점(TOI)을 변수로 삼아 미분을 수행하는 기법을 도입했다. 이는 고속으로 움직이는 물체나 얇은 물체의 시뮬레이션에서 기울기의 정확도를 획기적으로 높인다. TOI 기반 미분은 충돌 시점 자체가 제어 변수에 따라 어떻게 변하는지를 추적할 수 있게 해 준다.21
4. 최신 SOTA 미분 물리 엔진 아키텍처 및 벤치마크
2020년대 중반에 이르러, 미분 가능한 물리 엔진은 춘추전국시대를 맞이하였다. 각 엔진은 고유의 수학적 철학과 하드웨어 가속 기술을 내세우며 로봇 제어의 난제들을 해결하고 있다. 특히 2025년 공개된 Genesis와 같은 차세대 엔진은 생성형 AI와의 결합을 시도하고 있다.
4.1 주요 미분 물리 엔진 비교 분석
다음 표는 현재 로보틱스 분야에서 가장 널리 사용되거나 기술적으로 진보된 미분 물리 엔진들의 특성을 비교 분석한 것이다.16
| 엔진 명 (Engine) | 기반 언어/프레임워크 | 접촉 모델 (Contact Model) | 미분 방식 (Differentiation) | 주요 특징 및 활용 분야 |
|---|---|---|---|---|
| Brax 18 | Python / JAX | PBD / Penalty (Soft) | JAX AD (Reverse-mode) | 구글 개발. 단일 TPU/GPU에서 수백만 FPS 달성. RL 알고리즘(PPO, SAC) 내장. 대규모 진화 연산에 적합. |
| NVIDIA Warp 25 | Python / CUDA | Kernel-based | JIT Compilation + AD | Python 코드를 CUDA 커널로 컴파일. 공간 연산(Spatial) 최적화. 입자(Particle), 유체, 강체 통합 시뮬레이션 강점. |
| Nimble 16 | C++ / Python | LCP (Hard) | Analytical Gradients | DART 엔진 기반. 정확한 LCP 해의 해석적 미분. 실제 로봇 물리에 높은 정합성. 궤적 최적화에 유리. |
| Dojo 22 | Julia | NCP (Hybrid) | Primal-Dual Interior Point | 비선형 상보성 문제(NCP) 해결. 내부점 방법을 통한 부드러운 기울기 근사. 안정성 중시. |
| MuJoCo XLA (MJX) 28 | Python / JAX | Convex / Constraint | JAX AD | 표준 로봇 시뮬레이터 MuJoCo의 JAX 포팅 버전. 기존 모델과의 호환성 및 신뢰성 확보. Brax 대비 정교한 물리. |
| Genesis 24 | Python | Universal / Generative | Hybrid AD | 2025년 발표. 생성형 AI와 결합하여 4D 월드 생성 및 학습. 강체, 연체, 유체를 아우르는 통합 물성 시뮬레이션. |
4.2 Brax와 MJX: JAX 기반의 대규모 병렬화 혁명
구글의 Brax와 이후 등장한 MJX(MuJoCo XLA)는 JAX 라이브러리의 XLA(Accelerated Linear Algebra) 컴파일러를 활용하여 물리 엔진을 텐서 연산 그래프로 변환했다. 이는 CPU와 GPU 간의 데이터 전송 병목을 제거하고, 학습 알고리즘(Learner)과 시뮬레이션(Environment)을 동일한 가속기 메모리 상에서 실행하게 함으로써 학습 속도를 혁신적으로 단축시켰다. 벤치마크 결과에 따르면, Brax는 MuJoCo Ant 환경에서 기존 CPU 기반 방식 대비 수백 배 빠른 학습 속도를 보이며, PPO 알고리즘을 사용하여 수 분 내에 보행 정책을 학습할 수 있다.31
4.3 NVIDIA Warp: 커널 퓨전과 공간 연산의 민주화
Warp는 Python으로 작성된 물리 코드를 최적화된 CUDA 커널로 JIT(Just-In-Time) 컴파일하는 기술을 사용한다. 이는 텐서 기반의 JAX와 달리, 루프와 조건문이 많은 물리 시뮬레이션 로직을 GPU의 스레드 레벨에서 최적화할 수 있게 해 준다. Warp는 특히 입자 기반 유체 시뮬레이션이나 복잡한 메시(Mesh) 변형과 같은 고차원 자유도 문제에서 탁월한 성능을 발휘하며, Omniverse 플랫폼과 결합하여 디지털 트윈 구축의 핵심 엔진으로 사용된다.25
4.4 Nimble과 Dojo: 정확성과 미분 가능성의 공존
단순한 강화학습을 넘어 정밀한 궤적 최적화나 모델 예측 제어(MPC)를 위해서는 ’Hard Contact’의 정확성이 필수적이다. Nimble은 LCP 솔루션의 해석적 미분을 통해 속도와 정확도를 동시에 확보했으며, 기존 유한 차분법(Finite Differencing) 대비 수십 배 빠른 야코비안 계산 성능을 보여준다.17 Dojo는 완벽하게 딱딱한 접촉(Hard Contact)을 수학적으로 부드럽게 근사하는 내부점 방법(Interior-point Method)을 사용하여, 최적화기가 국소 최적해(Local Minima)에 빠지지 않고 안정적으로 수렴하도록 돕는 독창적인 접근법을 제시했다.22
5. 2025년의 지평: 생성형 물리(Generative Physics)와 Genesis
2025년 등장한 Genesis 엔진은 미분 가능한 물리를 넘어 ’생성형 물리(Generative Physics)’라는 새로운 개념을 제시한다.24 이는 거대 언어 모델(LLM)이나 생성형 비디오 모델이 상상한 3D 객체와 환경을 즉시 물리적으로 타당한 시뮬레이션으로 변환하고, 그 내부에서 미분 가능한 학습을 수행하는 시스템이다. Genesis는 강체뿐만 아니라 연체(Soft body), 유체(Fluid)까지 포함하는 통합 물성 시뮬레이션을 지원하며, 이전 세대 엔진들(Isaac Gym 등) 대비 10~80배 빠른 속도를 자랑한다. 이는 로봇이 텍스트 명령만으로 낯선 환경을 생성하고, 그 안에서 스스로 물리적 상호작용을 학습하는 ‘제너럴리스트 로봇(Generalist Robot)’ 시대를 여는 기반 기술이 되고 있다.
6. 한계와 도전: 혼돈(Chaos)과 현실 간극
역전파의 확장은 강력하지만 만능은 아니다. 물리 엔진을 통해 역전파되는 기울기는 시스템이 복잡할수록, 시뮬레이션 시간이 길어질수록(Long Horizon) 불안정해진다.
- 카오스(Chaos)와 기울기 폭발: 충돌이 반복되는 물리 시스템은 카오스적 성질을 띤다. 초기 조건의 미세한 변화가 결과에 지수적인 차이를 만들며, 이는 역전파 과정에서 기울기 폭발(Exploding Gradient)이나 소실(Vanishing Gradient)로 이어진다. 이를 완화하기 위해 무작위 스무딩(Randomized Smoothing) 기법이나 신뢰 영역(Trust Region) 기반의 최적화가 연구되고 있다.34
- Sim-to-Real Gap의 잔존: 미분 가능한 시뮬레이터로 시스템 식별(System Identification)을 수행하더라도, 마찰이나 공기역학 같은 복잡한 물리 현상을 완벽하게 파라미터화하는 것은 불가능하다. 이에 따라 최근에는 시뮬레이터의 수식으로 표현되지 않는 잔차(Residual) 항을 신경망으로 학습하여 보정하는 하이브리드 접근법이 주목받고 있다.1
결론적으로 2.4.2절에서 다룬 ’역전파의 확장’은 로봇 지능을 개발하는 방법론을 근본적으로 변화시켰다. 로봇과 환경의 물리적 상호작용 자체를 미분 가능한 연산의 사슬로 엮어냄으로써, 우리는 ‘물리적으로 타당하면서도 데이터 기반으로 최적화된’ 지능을 구현할 수 있는 수학적 토대를 완성하였다. 이러한 기술적 진보는 다음 절에서 다룰 하이브리드 제어 이론과 결합하여 더욱 견고한 로봇 시스템으로 진화하게 된다.
7. 참고 자료
- Software 2.0: Neural Codebases and End-to-End Differentiable Programming, https://www.researchgate.net/publication/398653205_Software_20_Neural_Codebases_and_End-to-End_Differentiable_Programming
- Software 2.0 - Andrej Karpathy – Medium, https://karpathy.medium.com/software-2-0-a64152b37c35
- Fast and Feature-Complete Differentiable Physics for Articulated Rigid Bodies with Contact - Robotics, https://www.roboticsproceedings.org/rss17/p034.pdf
- Differentiable Simulation - Emergent Mind, https://www.emergentmind.com/topics/differentiable-simulation
- DiffTORI: Differentiable Trajectory Optimization for Deep Reinforcement and Imitation Learning - NIPS papers, https://proceedings.neurips.cc/paper_files/paper/2024/file/c592fc7e6207f82560ed45fece8d6937-Paper-Conference.pdf
- [2206.04873] Imitation Learning via Differentiable Physics - arXiv, https://arxiv.org/abs/2206.04873
- arXiv:2109.07719v1 [cs.LG] 16 Sep 2021, https://arxiv.org/pdf/2109.07719
- A Differentiable Physics Engine for Deep Learning in Robotics - PMC - NIH, https://pmc.ncbi.nlm.nih.gov/articles/PMC6416213/
- Demonstrating Computational Equivalence between Continuous and Discrete Adjoint Methods by Calculating Time-dependent Adjoint So - OSTI.GOV, https://www.osti.gov/servlets/purl/1963210
- An Introduction to Adjoint Problems - arXiv, https://arxiv.org/html/2404.17304v1
- Use of the Adjoint Method for Controlling the Mechanical Vibrations of Nonlinear Systems, https://www.mdpi.com/2075-1702/6/2/19
- 1 The adjoint method - Stanford Computer Science, https://cs.stanford.edu/~ambrad/adjoint_tutorial.pdf
- Efficient Differentiable Simulation of Articulated Bodies - Proceedings of Machine Learning Research, http://proceedings.mlr.press/v139/qiao21a/qiao21a.pdf
- Hard Contacts with Soft Gradients: Refining Differentiable Simulators for Learning and Control - arXiv, https://arxiv.org/html/2506.14186v1
- Differentiable Simulation of Hard Contacts with Soft Gradients for Learning and Control, https://openreview.net/forum?id=2EGtfFwxx8
- Fast and Feature-Complete Differentiable Physics for Articulated Rigid Bodies with Contact - arXiv, https://arxiv.org/pdf/2103.16021
- RSS 2021, Spotlight Talk 12: Fast and Feature-Complete Differentiable Physics Engine, https://www.youtube.com/watch?v=74z2OvSXbwg
- Brax - A Differentiable Physics Engine for Large Scale Rigid Body Simulation - arXiv, https://arxiv.org/pdf/2106.13281
- Brax - A Differentiable Physics Engine for Large Scale Rigid Body Simulation - Datasets and Benchmarks Proceedings, https://datasets-benchmarks-proceedings.neurips.cc/paper/2021/file/d1f491a404d6854880943e5c3cd9ca25-Paper-round1.pdf
- [1910.00935] DiffTaichi: Differentiable Programming for Physical Simulation - arXiv, https://arxiv.org/abs/1910.00935
- Improving Gradient Computation for Differentiable Physics Simulation with Contacts - Proceedings of Machine Learning Research, https://proceedings.mlr.press/v211/zhong23a/zhong23a.pdf
- Dojo: A Differentiable Physics Engine for Robotics - arXiv, https://arxiv.org/html/2203.00806v5
- A Review of Differentiable Simulators - IEEE Xplore, https://ieeexplore.ieee.org/iel8/6287639/10380310/10589638.pdf
- Genesis: A Generative and Universal Physics Engine for Robotics and Beyond, https://genesis-embodied-ai.github.io/
- NVIDIA Warp Python, https://developer.nvidia.com/warp-python
- NVIDIA/warp: A Python framework for accelerated simulation, data generation and spatial computing. - GitHub, https://github.com/NVIDIA/warp
- Dojo: A Differentiable Simulator for Robotics, https://msl.stanford.edu/papers/howell_dojo_2022.pdf
- Brax ❤️ MuJoCo = MJX · google brax · Discussion #409 - GitHub, https://github.com/google/brax/discussions/409
- playground_technical_report.pdf - MuJoCo Playground, https://playground.mujoco.org/assets/playground_technical_report.pdf
- Announcing the Genesis Project: Ultra-Fast, Generative Physics Simulation Engine Sets New Standard for Robotics and AI - Kingy AI, https://kingy.ai/news/announcing-the-genesis-project-ultra-fast-generative-physics-simulation-engine-sets-new-standard-for-robotics-and-ai/
- Speeding Up Reinforcement Learning with a New Physics Simulation Engine, https://research.google/blog/speeding-up-reinforcement-learning-with-a-new-physics-simulation-engine/
- MuJoCo Manipulus: A Robot Learning Benchmark for Generalizable Tool Manipulation, https://openreview.net/forum?id=b9Ne5lHJ8Y
- Creating Differentiable Graphics and Physics Simulation in Python with NVIDIA Warp, https://developer.nvidia.com/blog/creating-differentiable-graphics-and-physics-simulation-in-python-with-nvidia-warp/
- Augmenting differentiable physics with randomized smoothing - ResearchGate, https://www.researchgate.net/publication/361500102_Augmenting_differentiable_physics_with_randomized_smoothing